Feedforward neural networks have been widely used for function approximation, regression, classification and pattern recognition. FIG. 1 is a diagram 100 illustrating a typical feedfoward neural network with one hidden layer. In such a network, the input variables are the nodes in the input layer. Their values are propagated through the hidden layers to the output layer. The model score is the output value of the node in the output layer.
Sensitivity, in this context, refers to how a neural network output is influenced by its perturbations of the values corresponding to the input variables. One of the most important uses of sensitivity analysis is to estimate the importance of different model inputs. Sensitivity analysis results can help a modeler understand the model and to select/discriminate among various input variables.
There are several conventional techniques for sensitivity analysis. One such technique is differential sensitivity analysis which also referred to as the direct method. This technique is based on partial differentiation of the aggregated model. The sensitivity coefficient for a particular independent variable is calculated from the partial derivative of the dependent variable with respect to the independent variable. In these calculations, all parameters are set equal to their mean value.
Other techniques are referred to as indirect methods in that they do not use partial derivatives. These techniques adjust the input variable value by some amount and calculate the model score changes. By aggregating the model score changes for all records, each algorithm will have a measure of the sensitivity of the independent variable. These techniques can be generalized with several key steps.sj=f(x1j,x2j, . . . , xNj)                Here sj is the score of record j, with j as the record index, N the number of input variables, xij is the value of input variable i on the j record.sj(Δxkj)=f(xij,x2j, . . . , xkj+Δxkj, . . . xNj)        
Here sj(Δxkj) is the changed score when input variable k is perturbed for record j.
Different methods perturb the input variables differently. For example, some use a percentage (e.g., 20%) change of the base case value. Some methods use one standard deviation of the input variable. With all the score changes for each record, the sensitivity of variable k is usually an aggregation of these changes. For example, the variance of score changes can be used to measure variable sensitivity.
As can be appreciated, to calculate the sensitivity of each input variable, the score changes for all records are required. In other words, one requires sj(Δxkj) for all records and all input variables. This arrangement requires J*N times of model score calculation, where J is the number of records. For each model scoring sj(Δxkj), its complexity usually increases with the number of input variables. When N is big, the complexity of model scoring is approximately O(N). Thus the total complexity of sensitivity analysis is approximately o(N*N*J). When there are many input variables, a thorough sensitivity analysis can be very slow (as it consumes significant processing resources).